package com.example.service;

import cn.novelweb.tool.upload.local.pojo.UploadFileParam;
import com.example.entity.FilesEntity;
import com.example.model.dto.AddFileInfo;
import com.example.model.dto.GetFileInfo;
import com.example.model.response.ServiceResult;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.io.InputStream;
import java.util.List;

public interface FilesService {
    // 分页获取文件信息列表
    ServiceResult<List<GetFileInfo>> getFileInfoList(Integer pageNo, Integer pageSize);

    // 根据id获取文件信息
    ServiceResult<FilesEntity> getFileInfoById(String id);

    // 获取文件输入流
    InputStream getFileInputStream(String id);

    // 小文件上传
    ServiceResult<String> uploadFiles(MultipartFile file);

    // 检查文件md5
    ServiceResult<Object> checkFileMd5(String md5, String fileName);

    // 断点续传：大文件上传
    ServiceResult<Object> breakpointResumeUpload(UploadFileParam param, HttpServletRequest request);

    // 添加文件
    ServiceResult<String> addFile(AddFileInfo addFileInfo);
}
